#pragma once

/*	File: IRenderManager.h
 *
 *	Interface for the RenderManagers. Defines some common behavior.
 * "An interface class is a class that has no members variables, and where all of the functions are pure virtual! ".
 * -http://www.learncpp.com/cpp-tutorial/126-pure-virtual-functions-abstract-base-classes-and-interface-classes/.
 */

#include "RenderDefines.h"
#include "precompiled.h"

class IRenderManager
{
public:
	// Receive a collection of render tickets. Tickets don't need to be sorted.
	virtual void accept_renderTicket(RenderTicket *ticket) = 0;

	// Receive a collection of render tickets. TICKETS SHOULD ALREADY BE SORTED!
	virtual void accept_renderTickets(std::vector<RenderTicket&> &tickets) = 0;

	// Draw our collection of render tickets.
	virtual void Draw_renderTickets() = 0;
};

